package com.bingxue.edu.management.education.model.query;


import com.bingxue.edu.common.enums.ClassCategoryEnum;
import com.bingxue.edu.common.enums.ClassStatusEnum;
import com.bingxue.edu.common.enums.SaleStatusEnum;
import com.bingxue.edu.common.enums.TermEnum;
import com.bingxue.edu.framework.mybatis.query.Query;
import com.bingxue.edu.framework.mybatis.query.QueryType;
import com.bingxue.edu.management.education.model.entity.ClassInfo;
import com.mybatisflex.annotation.TableRef;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

@Data
@Schema(description = "班级列表查询条件")
@TableRef(ClassInfo.class)
public class ClassQuery {

    @Schema(description = "班级id")
    private String id;

    @Schema(description = "班级名称/老师名称关键词")
    @Query(field = "id")
    @Query(type = QueryType.LIKE, field = "name")
    private String keyword;

    @Schema(description = "科目")
    private String subject;

    @Schema(description = "教学年份")
    private Integer classYear;

    @Schema(description = "班级分类")
    private ClassCategoryEnum classCategory;

    @Schema(description = "校区")
    private String campusId;

    @Schema(description = "教室")
    private String classroomId;

    @Schema(description = "学期")
    private TermEnum term;

    @Schema(description = "年级")
    @Query(type = QueryType.IN)
    private List<String> grade;

    @Schema(description = "班型id")
    private String classTypeId;

    @Schema(description = "主讲老师")
    private String leadTeacherId;

    @Schema(description = "辅导老师")
    private String assistTeacherId;

    @Schema(description = "班级状态")
    @Query(type = QueryType.IN)
    private List<ClassStatusEnum> classStatus;

    @Schema(description = "上架状态")
    private SaleStatusEnum saleStatus;
}
